package com.sophossystems.client.asmon.dao;

import java.util.Date;
import java.util.List;

import com.sophossystems.client.asmon.dto.RutaDTO;
import com.sophossystems.client.asmon.dto.RutaPkDTO;
import com.sophossystems.client.asmon.exceptions.DaoException;

public interface RutaDao {

	/**
	* Method 'insert'
	* 
	* @param ruta
	* @return RutaPk
	*/
	public RutaPkDTO insert (RutaDTO rutaDto);
	
	/** 
	 * Updates a single row in the Activity table.
	 */
	public void update(RutaDTO ruta) throws DaoException;

	/** 
	 * Deletes a single row in the Activity table.
	 */
	public void delete(RutaPkDTO pk) throws DaoException;
	
	public RutaDTO findByPrimaryKey(final int idRuta) throws DaoException;
	
	public List<RutaDTO> findByIdCliente (final int idCliente) throws DaoException;
	
	public List<RutaDTO> findByIdMensajero(final int idMensajero) throws DaoException;
	
	public List<RutaDTO> findByDate(final Date fecha)throws DaoException;
	
	public List<RutaDTO> buscarRangoFecha(final Date fInicio, final Date fFinal) throws DaoException;
	
	public List<RutaDTO> findByIdZona(final int idZona) throws DaoException;
	
	public List<RutaDTO> findByIdCierreRuta (final int idStatus) throws DaoException;
	
	public RutaPkDTO findLastInsert() throws DaoException;
	
}
